#ifndef _NE_TYPE_H_
#define _NE_TYPE_H_

#include <neplatform.h>

namespace ne
{
    typedef unsigned char byte;
    typedef unsigned char uint8_t;
    typedef signed char int8_t;
    typedef unsigned short uint16_t;
    typedef short int16_t;
    typedef unsigned int uint32_t;
    typedef signed int int32_t;

    #if NE_COMPILER == NE_COMPILER_MSVC
        typedef unsigned __int64 uint64_t;
        typedef signed __int64 int64_t;
    #else
        typedef unsigned long long uint64_t;
        typedef signed long long int64_t;
    #endif

    #if NE_ARCHITECTURE == NE_ARCHITECTURE_64
        typedef uint64_t size_t;
    #else
        typedef uint32_t size_t;
    #endif

    #if NE_PRECISION == NE_PRECISION_DOUBLE
        typedef double real;
    #else
        typedef float real;
    #endif
}

#endif
